{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "9b1a43a8",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\liangcheng\\AppData\\Local\\Temp\\ipykernel_19932\\3632377357.py:32: FutureWarning: 'w' is deprecated and will be removed in a future version, please use 'W' instead.\n",
      "  df = df.resample(freq).agg({'open': 'first', 'close': 'last'})\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "涨跌幅大于 2% 概率：0.3382\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABv0AAAJNCAYAAAAS1bnjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAA9hAAAPYQGoP6dpAADA8ElEQVR4nOzdd3xV9f0/8HcGJLJHVERBhopoxW3dWke1VVHRWrG0arWOWveoqNSN1q2tSkWt1tHWurWu1lH3AkfRmDqJIypXBERIwji/P/jm/ghZJCHknvh8Ph551Hs+53w+7zPu5Savfs7JS5IkCQAAAAAAACC18tu7AAAAAAAAAKB1hH4AAAAAAACQckI/AAAAAAAASDmhHwAAAAAAAKSc0A8AAAAAAABSTugHAAAAAAAAKSf0AwAAAAAAgJQT+gEAAAAAAEDKCf0AAKAdzJ8/P95777346quv2ruUBn388cfx+uuvx8KFC9uk/4ULF7ZZ32kxf/789i4hPvroo2XW1+mnnx7nn3/+Mu1zeamurm63sRcuXBjvvPNOTJs2rdbyTCbT5Lbz58+PGTNmLNNradasWVFZWblU6953333x3HPPLbOxayRJUmfZpEmTWtXn119/HeXl5a3qAwAAclleUt83aQAAoNWOP/74+OCDD+K+++6r0/bxxx/HwIED49RTT40LLrigyb5mzJgRX3/9dXTu3Dk6d+4ceXl5TW4zb968qK6ujs6dO8cqq6ySXZ4kSZxzzjmRyWTiD3/4Q4PbH3HEEfGnP/0p5s2bF4WFhU2O1xxz586N0aNHx1prrRUXXXTRMu07TQ4++OBIkiSuv/76Vh/j+fPnx7hx42KXXXaJ7bffPru8uro6Pvroo5gxY0ZkMpn4+OOP47333ouysrJ48cUXY9q0afHSSy/FZptt1qrxP/roo1hrrbWid+/eMWnSpFhttdVa1d/ydthhh8WMGTPilltuiaKiovjyyy+jU6dOUVBQEPn5df//sp06dYqioqI6y6+88sp45ZVX6h1j9dVXj/PPP7/O8jlz5kTXrl3jnHPOiXHjxkVExOzZs2PdddeNAw44IMaPHx/ffvttlJaWRnFxcXTq1Cnb3+TJk2PrrbeOxx9/PHbYYYeIiKiqqqq3toqKiliwYEGtZfn5+dG/f/9ay2688cY49NBDY/LkybHBBhvUuy81hg8fHltssUXceOONERFRWVkZt956axQVFdX7OZUkSVRWVkZJSUnsvffeDfb7k5/8JPr37x+XXXZZFBQUxF133RX77rtvPPLII7HLLrs0WlND/vjHP8YxxxwTV1xxRRxzzDEt6gMAAHLZsv3NHQAAyHr//fdjypQp9bbV/EG+vj/M1+emm26K448/vkV17LPPPnHnnXdmX+fl5cXnn38eEyZMiHXWWSeOPPLIercrLi6OgoKCZR74VVVVxR577BFTp05dqsCzIzvqqKNir732iv333z/+/ve/R0FBQYv7ymQycccdd8TVV18dTz31VGy00UYREVFWVhYjRozIrtezZ8/o169frLrqqrHrrrtGv3796swwa4kTTjgh5s2bF1deeWWjgd/8+fOjuro6qquro3v37q3a52Vl5syZ8fe//z3GjBmTfU+utdZaMXPmzAa3Of300+O8886rs/yll16KBx98MLbddttay1955ZUYOnRovX3V93lQVVUVa6+9dlx44YVRWloaxxxzTOy44451xlphhRUiIrL/W1lZGYMGDYrx48fHL3/5y1rrb7jhhvHFF1/UWtarV6/4+uuv4+mnn45XX301xowZE3369IkkSWL11VdvcP9rdOnSJTt2Td0333xz9vNjSUmSxNy5c+N73/teg6Hfa6+9FnfeeWeMGTMm28dee+0Vw4YNi5NOOil22GGHbPDZHH/961+je/fuMWbMmGZvCwAAaeD2ngAA0EYKCwsb/MN0586da/3v4v73v//VWXbEEUfEzJkzY+7cubFw4cJIkiR+9rOfxeqrrx5JktT7ev78+VFZWRk333xznf7++Mc/xjbbbBPHHHNMvPzyy/XWWFBQ0CaBzGGHHRYff/xxPPvsszF8+PA67VOmTIkf/ehH0bNnz1h11VXjiiuuqLefZ599NrbZZpvo1q1bDB06NP7617/WWWfOnDlx0kknxWqrrRaFhYVRUlISxx13XFRVVdVa77zzzou8vLw6P7vvvnut9V566aUYOXJk9O7dO7p37x577LFHvPHGG43u74IFC2KrrbaqNfuuxiabbBLPPvtsvPjii3Hqqac22k9T+vXrF//617+iuLg4dt999/j0008jIqJbt24RETFx4sSYO3duzJgxI9555514/PHH4y9/+UtcdNFFsdtuu9Xq65tvvonDDz88BgwYEMXFxTFw4MA4+uijGwzB/v73v8c999wTERGjR4+u91jW/HTq1Cm6du0avXv3jtLS0lbt87Jy6aWXRteuXWP8+PExb968mD59erz33nsxe/bs6NKlS9x2220xd+7cmDt3bjz00EMREbHrrrvW21enTp1i4MCB8eCDD9b62XTTTWsF6Lvuumusv/76ERHZ99niMwr79u0bjzzySFx88cUxa9as2GKLLWL27Nkxf/78eO211yJiUUhY8xlS81lz++23x7Rp02LzzTevU1txcXFcfPHF2c+Iv/71r1FcXBwRi26dedJJJ0VEZOvs0aNHvfs4ZcqUuPDCC+PCCy+ML774Il577bXs62nTpsUzzzwT//rXv+KRRx6p8/Poo4/G008/Hddcc02D5+Occ86JoqKiWqFqQUFBXHrppTFlypQ444wzGtz2yy+/jEmTJsWUKVOitLQ03nnnnXjnnXfivvvui+effz5GjhwZX375ZXb54j9vvfVWvP766/H222832D8AAOQyM/0AAKCN5OfnN3gbzpo/qi9528Dbb789Dj300Dj++ONr3QawuLg4+8f5pVUT2tU3m7CgoCBuueWW+Pvf/x6bbLJJTJ06NQYNGlRvP0vuwxVXXBHHHntss2qpcffdd8ddd90Vr732Wqy88sp12svKymLbbbeN/Pz8OPXUU2P69Olx4oknRnFxcRxxxBHZ9Z555pnYeeedo3///nH22WdHaWlpHHDAAdGrV6/40Y9+lF1v9OjR8dBDD8VBBx0U3//+9+ORRx6JK6+8MqZPnx5/+ctfsuu9+OKLseGGG8YJJ5xQq57FZ6z961//it122y3WXnvtOO+882Lu3LlxxRVXxBZbbBH//ve/Y8stt6x3ny+88MJ4/vnnY7vttqu3fdCgQXHvvffGVlttFXvssUedGWLNMWTIkLjjjjtiv/32i/feey9WXXXVbBjUv3//pb6G9ttvv3jppZfi+OOPj1VWWSXeeOON+NOf/hT//e9/46mnnqq17vvvvx+HHXZY9O3bN5599tkoKSnJtj322GPxs5/9LB555JHYeOONI+L/33Z23rx5MXDgwBbv67Ly4YcfxmWXXRY33XRT9OzZM2699dY48cQTs/uyYMGC6Nq1a61wrEePHvWGahF13y+LW/z9vsIKKzR5PvLy8uKkk06KE088sd5+O3fuXOt2nUmSxBVXXBH77rtvrLPOOvWu39CyqVOnRufOneMXv/hFdubnbrvtFgsXLozq6uo45JBD4uc//3lELAr9xo4dG4cffnhUV1fHrFmz4qOPPorrr78+Nt5441hjjTVizTXXjPfee6/e/frb3/4WP/3pT+ttu+eee+Lee++N3/72t3VmGu62227x05/+NC6++OJYb7316p2xd//998evfvWrevuOiLj11lvj1ltvbbA9ImK77barc50DAEAaCP0AACAHlJeXx4knnhh33nlnrLbaarHWWmvVWWfu3Lnx7bff1gpVmvLpp5/GqquuWm/b6quvHqecckpE/P8//I8fPz57y72LLroobrvttuxMthkzZsQWW2zR7PCxRpIkcdppp8XYsWNjzTXXrHedE044IWbPnh2vvvpq9paUnTt3jlNOOSV+/vOfR9euXSMi4sgjj4wuXbrEs88+m30e2dy5c+M3v/lNvP/++xER8dBDD8X9998fd999d3afDj300Nh+++3j9ttvj6uuuip69eoVEYtCvyOOOKLB2/4lSRK/+c1von///vHCCy9k6/jJT34Sw4cPj1NOOSWeffbZOtu99tprcfbZZzf5DMZNNtkkjjzyyBg7dmw899xzja7blO233z4++OCD7Ay/mlBoaW8l+7///S8eeeSRmDhxYhx66KHZ5b17945zzz03PvjggxgyZEhELLot5j777BOzZs2K+++/P9Zee+1afdXMFOvZs2ezrtvlZcaMGbHPPvvEqFGjYt99942qqqo466yzYtiwYbHGGmtExKLjt3hY9sILL8S2227b4G1vFyxYEPPnz49PPvmk1vLKyspIkiT7uqCgoNHrIpPJxIIFC2LllVfOrvfOO+9ExKLnJ0YsupXm4nU88MADMWXKlLjtttvq7bO6urrBZa+99lpsueWWcdBBB8XkyZNj8uTJceCBB2ZDv+9973vZbWqOx4QJE+LVV1+NzTffPP74xz/GTTfdlA2Zu3btGpdeemkcdthhtcZbbbXVGvwM+eKLL+Kwww6L1VZbLU477bR615kwYUJMnjw5Dj744KiqqopDDjmkVvvPf/7z2H///aOoqCj7PMY//elPccQRR8Ttt98eo0ePjosuuig++uijRmcbAgBAGgn9AACgDc2aNSs7qyRJkpg3b1507949Oxvts88+i+OOOy6uu+66KC4ujgsuuCCOPfbYWs/IilgUrqy77rqxyy67xA033LBUY2cymRg6dGj89re/jbPPPjsiFoUEH374YRQXF0dhYWF06dIl+vTpk/1D/SqrrJINbvr06RN5eXnZ15lMJiKixc/4e/HFF+P9999v8BmCM2fOjEcffTRGjhxZ6xl0v/nNb2L8+PHx6KOPxqhRo+Ktt96Kt956K44//vhs4Fez3u233x6TJ0+OjTbaKHr06BFXXXVVneeGrb/++vGf//wnMplM9OrVK/73v//FV1991egMu/fffz/+97//xbhx47KBX8Si4PT73/9+vPTSS3W2qaysjDFjxsSIESOWKnA75phjYujQofHuu+82GIo2ZO7cuZGXlxedO3eO/Pz8bOBXU0dEZIOQJS1YsCCqqqpiq622igceeCC+/vrriIhafUT8/9Cw5vx/++238eMf/zjeeOONOPXUU2OPPfZotMaFCxfGwoULs8/0Ky4urnfm2fJ03nnnxWuvvRbffPNNDBkyJGbMmBGVlZXx8MMPR15eXjbAq3l/VFdXx3/+858499xzG+yzqqoqysrKYsCAAXXavv/97y91bUceeWQ8+uijMW7cuDjuuOOisLCwzu1wKysrs+dp4cKFcfrpp8e+++4b6623Xr19VlZWxsknnxwnn3xydlmvXr3im2++iZdffjmuueaa2H///WOFFVaIiy++OEaPHl1vP0vOUK7PwoUL4+uvv64TftbcnnhJ1dXVMXr06Jg+fXo8/vjjDd5atFevXvHvf/87dtxxxzj00EPjueeeiyuuuCK7flFRUa3r/P3334+TTjopxowZk92f119/PV5//fUm9wEAANJG6AcAAG2ooqIie0u8Guuvv3429PvDH/4QK664Ypx66qlx7LHHRs+ePevtp2fPnrH++uvHrbfeGuecc06Ds/cWN3HixKiqqootttgiu+zDDz+sFRyMGTMmbrnllqX6I36N5qy7uBdeeCE23HDD6NOnT73tpaWlsWDBgvjBD35Qa/kqq6wS/fv3j8mTJ8eoUaPiv//9b0REnfU22mijyMvLy4Z+W2+9dWy99dZ1xnnppZeiR48e2duZvvDCCxERcfnll8cBBxwQlZWVsfHGG8epp56aPU81z7JbccUV6/Q3Z86cWkFgjbFjx8ZHH30UkydPjsMPP7yxQxMRi27NOWjQoHjxxRebHfqdfPLJcfXVV2dfX3755XHcccfVqv3kk0/OziB99dVX4/zzz48LL7wwhg4dGvPmzcuel/XXXz9729Rhw4bFsGHD4oUXXogrrrgiNttss+wtOYuLi+Oss86Khx9+OPtMxIYsfg3W+Mc//hH77rvvUu9jkiTRp0+fGDlyZNx8881x1113xb777htjx46N8ePHx+WXXx4nnHBCvPvuu9lZek05+OCDY86cObHJJptEZWVl/OY3v4mrrroqe/y//fbbiFh0jiMinn766fj222/jhBNOiBNOOCGGDx9e5/lvZ599dhxzzDGRyWTioosuip122il++MMfRkTUe5005Pzzz48ZM2bEKaecEvPmzYvf/va3ERFx1VVXxdFHH51db8qUKRGx6H15+eWX17kl5uJeeeWVWLBgQYwfPz7efPPN+Nvf/hb5+fnx+eefx3rrrZe9BW19MwIXtzSfAXl5eXH55ZfH5ZdfXqdt8VuSRiy65evPfvazePLJJ+Pwww+PHj16xJtvvtnoONddd1389re/jT//+c/xz3/+M2644YY6z+DMZDKx2267xfDhw+O6667LLm/seasAAJBmQj8AAGhDa665Zrz88ssREdlZTovPcvnFL34REyZMqDOzrz6nn356PPTQQ3HVVVfF73//+0bXraysjD/84Q+x8847x6677ppdPnTo0Pjoo4+iqKgoNttss+xt9moCm4MPPjgOPvjgWn0tGeY0davKhnz55Ze1ZuYtqWaGWc2tIxe38sorZ29p2NB6RUVF0atXr+x69Xn66afjpZdeimOPPTY7Y63mdppJksRZZ50Vc+fOjeuuuy522223+Oc//xk/+tGPYvDgwdGpU6f497//XStweffdd+O1116Lvfbaq9Y4TzzxRFx55ZVx7bXXxrBhwxqsZ0mrrrpqfPnll0u9fo0zzzwzTj311Jg9e3YMHz681kynzz//PCIi9tlnnxg6dGhELLq1ZMSiZ5ct+Wy64uLiePLJJ2OHHXaIjTbaKLt8hx12iL/97W/Z1wUFBbHzzjvHzjvvHBGLgpTjjz8+e8vYiP//TL+HH344Ntxww+xs1+rq6nqf6diYvLy82GSTTbIh25tvvhkR/z/0evvtt6NPnz5LHfhFRKy77rpxzTXXxPz58+MHP/hB7LHHHvGb3/wm215zLq6//voYOXJkbLzxxlFaWhoREXvssUfstNNOdfqsCdU/++yzeOGFF2KXXXapN3xuylprrRX/+te/4uabb4599tknG8QtPgNu7Nix2dvv/u53v6sTqP/gBz/I3v7y22+/jQULFsTAgQOjR48eUVxcXOs5njWfUxFNh35L8xlQU9fSOPbYY+POO++Mgw46KLp165Z9/mNTPvroo/jjH/8Yf/3rX+vMopw2bVr8+Mc/jrKysoiI6NKlS53t69uP5oTGAACQa4R+AADQhvLz87PPjVvc7NmzI2JRQLA0gV9ExJZbbhlbbrllTJw4Mc4888xG173uuuuioqIi7rvvvlrLO3XqlJ0JlJ+fnw2Hav74vTTP9GupwsLCmDVrVoPtCxcujIj6Z0N16dIlZsyY0az1ljRnzpw4/PDDo2/fvjFu3Ljs8h122CE222yzWs+v++UvfxnrrrtunH/++fGjH/0o+vTpEwcffHBcd911ceKJJ8avfvWrmDp1ahx33HExb968WrcsnTlzZhx00EGxxx57LNUMv8XNnDmzRbdPrZmBWHML1sVvm/nuu+9GXl5ercC1vtsrLu6iiy6KTz/9NHbccccYNGhQPP/88/H000/HRRddFBdddFG9YUnN7WIXf3ZfTUDVq1evZod89dlss83iqquuiiRJ4r///W+MHDkyG/6VlpbGpptu2qJ+f/3rX8enn34a999/f63lH374YUQselbec889F1tttVX07t07Pv7443jvvffqhH7PP/98fPPNN1FUVJS9DmfOnBlPPfVUdp3u3bsvdagVEXHggQdGxKLnc0YsCu/ee++9yM/Pj1VXXTUbgq+22moxadKk+OKLL+LAAw+MqqqqWu+Re++9N8aMGRPffPNNRCx6P7zxxhtRWVkZU6dOjfHjx2efg1dzHW299daRJEksWLAgqqur45JLLokddtihydBvxIgR2Rm5DTn77LPjd7/7XURE/P73v48BAwbEKaecEqWlpbHTTjtFp06d4je/+U0sWLCg1iy9iIhLL700HnnkkRg4cGBcfPHFcfrpp9f6nH3nnXdi9913j1mzZsXGG28clZWVceedd2bbx44dG++8807cc8892WX33HNPnHbaaS1+ZikAAOQCoR8AAKTIscceGz/96U/jH//4R4PrzJ49O8aPHx877bTTUocgNSHQ0jzTr6UGDhwYN910U4PtNTNxakK9JeureTbd0q63pKOOOirKysri3nvvjb59+2aX77///nXW7du3b+yzzz5xzTXXxLfffhtdu3aNa665Jnr27BnXXXddXHbZZdl1t99++1q3Gj3qqKNi3rx5cf311ze4r/VZuHBhvPfee9nbZ7ZGzUy+iEUzGQcPHlwrXG4s9Hv44YfjhhtuiJtvvjl+8YtfZNc/6qij4pJLLomtt9469txzzzrbtfS2r82x2WabxezZs6O8vDzefPPNGD9+fDzwwAPxzTffRGlpaRx11FHN6m/OnDnx61//Om6++eY48sgj4+KLL4733nsvNtlkkzjllFNi8uTJUVJSEttss00cffTR8corr0RBQUE88MAD0blz5+ztMGv87ne/i8cff7zWsiVvcbnVVlvFs88+u9Q1fvDBB7HqqqvGV199FRGR3cc+ffrEV199FVOmTIk//elPcdhhh8V//vOfOPvss+Pss8+uEx7XnP+a/508eXJsscUW0alTp3jqqafigAMOyD4Tsua5oX379o2ddtopFi5cGNXV1bHaaqtFRP3vvcUVFxfHL37xi+yzRDfddNP45S9/GUceeWQsWLAg1lhjjVrhWvfu3WPs2LEREfG9730vvve970XEolm9W221VWy//fa1+r/yyitjlVVWyYaPiwd+EyZMiBNPPDF69OgRjz/+eJx//vnx3nvvZT/HIhbdLrmoqKjWslVWWSUiYqmevwkAALmq7X8rAwAAlplRo0bFSiutFE8//XSD60yYMCG++OKLOP3005e63yWfsdWYpv7g35BtttkmPv3003jllVfqba95TuHUqVPrtE2bNi07a6yh9RYuXBhfffVVrdsf1rj66qvjpptuitNOOy1Gjhy5VPXWzJKqqKiIiEVB2kUXXRTTp0+Pr7/+OvbYY4/Iz8+vFQDeeeedcdttt2Vnw2UymchkMjFv3ryYN29eZDKZ7PPhlvTwww9HdXV1bLXVVktV39KYNm1aPPLII3VmaNaEfvWdy0cffTR69+6dDfwiFs0ErbmennzyyYiImD59epSXl8fnn38e06dPj4hFt5WdMWNG9qfmmXizZ8+utXz69Onx+eefx9SpUxsMaetTcwvHV155JT744IP4wQ9+EP369Yt///vfMX369Dq3eGzKG2+8ETfffHNELHrG4AsvvBA9e/bM3vL0n//8Z2y33XZx0UUXxVtvvZW9Fejll18e++67b51ncN58883x0UcfRUVFRdx4440REfHQQw9FRUVFVFRUxKhRo7Kh0sKFC5uccRmxKEjcb7/9YsSIEdnraNy4cfXOEN5yyy3jm2++iUmTJtVpq5n9WRMIb7311jFnzpyYOXNmbLjhhnHKKafEcccdF8ccc0zMnDkz+vbtG1VVVXH00UfHscceW+uZkE19BhQUFET37t1j0KBBMWjQoCgoKIjevXvHoEGDsjONm5rRWl5eHl988UWsv/76ddoqKiqyAeSSVl111Vh77bXj+eefj/XWW6/RMerT0tsXAwBALhD6AQDAclRaWhrnnntui7cvLCyMF154ITsTpz7HHXdcPPjgg3VmxzSm5o/4c+bMyQYzVVVVERHZ1zW35pw/f36Lah8+fHhsuummcdFFF9XbPnTo0OjRo0edWVBff/11vPfee9mZOBtssEHk5eXVWe/NN9+Mqqqq7Ho1HnrooTj22GNjr732qnPsp0+fHj/5yU+yQdbiXnvttcjLy6t1u8qIRTPa3nvvvXjggQfikEMOiQ033DDb9uCDD0bEomc1rrjiitmf559/Pp5//vlYccUVG9z/Sy65JHbddddYaaWV6m1vibFjx8bcuXPjV7/6Va3lNeewodmSSz57MiKyYWXNthdddFGsvvrqscoqq0Tfvn1jzpw58fvf/z569+6d/amZRbnzzjvXWt63b99YZZVVYtCgQfHqq68u9f7069cvBgwYEH//+99jpZVWihVXXDHWW2+9uOOOOyJi0UzA5thiiy3i4Ycfjo8//jimTZsWTz75ZEycODE23HDDePfdd+PZZ5+NQw45JNZYY404+eST47TTToszzjgj3n///TjuuOPq9LfqqqvG6quvHv369YtPPvkk8vPzY9ttt41+/fpFv379YuHChdnQr7Kyssln51VXV8eDDz6Y3a/CwsIoLCyM/Pz8ekOzTTfdNHr37h233XZbs47D4qZMmRJTp06Nyy67LJ588snsbUUXt+R1M2PGjLjiiiuiqqoqCgoKIj8/P66++urIy8uLvLy8+OKLL2Ls2LGRl5cXnTp1ioimZ4bW3Jp48Vm0NT7//PNs+L+kPfbYIyZNmhSDBw9eqv0FAICOROgHAADLQWlpaYwZMya+973vxdVXX93ouk8++WT885//bDAQGDJkSKPbFxYWxm677dboOkmSxLx587JBXs1sq6OOOiobzPzxj3+Mqqqq7OuhQ4dGRGTDwJa44IIL4s4774xbbrmlTltBQUGMHDky7rzzzvjss8+yy6+//vpIkiR23nnniIhYaaWVYquttoobb7wx+2zEiIiJEydGRGTXi1h0LPfdd9/YYIMN4tZbb60zi6dXr17x7LPPxvnnn18ryHjooYfi8ccfj2233bbeZzKedtpp0bt37xg/fnyt5aecckr861//qvMzYsSIGDFiRPzrX/+qNYOuxmWXXRbPPPNMnHfeeY0dvmb5xz/+ETfccEPsvvvudW5DWRPc1RfgDhkyJL755pu46667aq1fU1vN8+jOOOOMyGQyMXPmzJgzZ052FtriPzXBzbPPPltreXV1dcydO7dFs/M222yzuPvuu7OzuGpCv0GDBmWfbdgcO+64Y0yfPj2uv/76OOigg2L11VePK6+8Mk4++eQYPnx47LrrrhERMW7cuBg6dGj8/ve/j9GjRzd669x58+bFTTfdFN///vdrPVdvzpw52dddu3atd1bq4h5//PGYOXNmHHDAAUu1L7NmzYq99947brrppkafn7m4ioqK+Oijj7KvL7744hg4cGD87Gc/i6233jp7283FzZs3r9br7t27xyWXXBLdunWLYcOGRV5eXhx00EHx8ccfx8cffxwrrrhijB07Nj7++ONaYzWksrIyrrzyyhg8eHBsvfXWddobC/2aqrUhNbNVl8dtagEAoK14ph8AALSRL7/8Mr7++usYOXJkPPjgg9GnT58488wz4+ijj86uU9/t/W688ca49dZb44knnqh3lsuycN5558Vnn30Wt912W+yxxx4xatSo7G0sm9JUUNGYHXfcMU488cQ44ogjYpVVVomddtqpVvupp54ad955Z/z4xz+O8ePHR1lZWYwbNy6GDRuWDV8iIs4888z44Q9/GHvuuWeceuqp8Z///CcmTJgQ22+/fWywwQYREfHVV1/FT37yk6iuro7Ro0fHPffcU2usLbfcMoYMGRJnnnlmHHnkkbHVVlvFFltsEZ988kncc8890aNHj7jiiivq7MP9998f//rXv+Laa6+tMwtwnXXWiXXWWafONr17946IqLO/ERF33XVX/Pa3v43zzz+/1qzBlnjuueciIuL222+Pf/zjH3HdddfFj3/84zrrJUkSXbt2rfe2rqNHj47zzz8/9ttvv9h4442jT58+8d///jcqKipixIgRMWbMmIiI6NatW3Tr1q3RemoClIKCgjoz0zp16lTruW5La7PNNou77rqrVui3cOHCZs/yi4i47bbb4pBDDomqqqro06dP7LjjjnH66afHJ598Evfdd188+uij2aC4vLw8e7vSioqK+Oqrr2o9G3Jx55xzTnzwwQdx/vnn11o+Z86c7EzUxp7LWeOWW26JzTfffKlmrU2ZMiX23HPPuPzyy+PGG2+M8847r9as0ppzfdttt8Urr7wSb775ZgwaNCimTp0a119/fRxyyCHx0EMPxS233BLXXHNNFBQUxFlnnRXbbbddjBw5Mvbdd99sX8OGDat1++CCgoK4/fbbY+21146VVlopFixYEF27ds3egjM/Pz969OgRq6222lLNFD7++OPj/fffj9tvv71OUD99+vSoqqpa6tCvqdmUEyZMiCuuuCLef//96NWrV51btgIAQKokAADAMjdjxoykuLg4iYikX79+yWWXXZbMnj072z5v3ryksLAw2WyzzZL77rsveeCBB5IHHnggufHGG5MuXbokAwYMSObPn58kSZJ88MEHySWXXJJcddVVyYQJE5KJEycmEydOTDbffPOkb9++Db6+7rrrkj/+8Y/J5Zdfntx0003Zse+5554kLy8v2WCDDZKhQ4cmBQUFyXnnnZd8++23y+XYLFiwIDn44IOTwsLC5Oabb67T/sgjjySrrLJKEhFJRCTDhw9PpkyZUme9v/zlL0mPHj2y622xxRbJJ598km2/++67s231/fz5z3+u1de6666bdO7cOenfv39y8MEHJ++//36dMauqqpI11lgj2WSTTZIFCxYs9T5vt912yXbbbVdn+eWXX57k5eUlJ5544lL31ZD77rsv6dy5c3b/+vXrl1x66aXJ559/3uy+3n333WS//fZLVlpppaSgoCApKSlJRo8enXz88cfN6ueee+5JIiJ5/vnnm11DQ5566qkkIpIbbrghSZIkmTRpUhIRySWXXNLsvmbNmpWMGzcuee6557Ln889//nNSWFiYjB07NkmSRdfrxIkTk+7duydbbLFF8vDDDycrr7xyMnjw4OThhx+u1d/8+fOTM844I4mIZPfdd08WLlyYbZszZ04yYMCA5Oijj65Tx2effZZERHLZZZdll3366adJ586dk0svvTS7rLq6Ovnqq6+SUaNGJUOGDEmSJEmeffbZJCKSwsLCZKONNko+/fTT5MADD0zy8/OThx56KEmSJCkrK0vy8/Oz18agQYOSX/ziF8kNN9yQ/O9//0uSJEkee+yxpGvXrslOO+1Uq+5f/vKXSefOnZO777673mM4YsSI5Ne//nWtZd///vcbfe9FRK39qjFv3rzk6KOPTiIiOfjgg+sd7x//+EcSEckdd9xRb/uSDjnkkGSfffaptWzMmDHJeuutlyRJkpSWliZrrLFG8tOf/jR5+umnl6pPAADIVXlJshRPDgcAAJrtsssui6+++ipOP/306NKlS532M844Iy666KI6t59baaWV4pZbbokf/vCHERHxyCOPxI9+9KNW1bL++uvH66+/Hp9//nmstdZa0a9fv3jttdeioKAgxo4dG1dffXV06tQpNtlkk1hrrbWif//+0adPnyguLo68vLyoqqqKWbNmxVdffRUVFRUxdOjQVt2KMkmSuPjii2PzzTePbbfdtk773Llz45lnnonCwsLYZpttss8BW9LMmTPjueeei549e8YWW2yRulvz3X///VFRURGHH354q/vZd999o1u3bnHppZfGvHnz4rrrrotJkyZFRMRaa60Va621VgwZMiT69+8fRUVF0blz5/j2228jk8nE1KlT46233orJkyc3eKxb4o477oif/vSn8fTTT8c222yzzPptKx988EFss802sddee8UVV1wREydOjKuvvjree++9+O1vfxvjxo2LTp06xQcffBAjR46Mt956K3bbbbe4//77Y9q0abH77rvHq6++Grvsskvcc889scIKK8S0adNis802i88//zwqKyvjvvvui5EjR0bEovf2hRdeGKWlpfHll1/GXXfdFaNGjYqIiGOPPTauuuqq+Oijj2L11VePiEW3j7344osjImKfffaJO++8M84444w4//zzY9SoUXHLLbdEly5dYsaMGbHVVltF165d4+mnn47i4uI44ogjYoMNNogf/ehH2f4iIjKZTJx77rnxxz/+Mbbaaqv45z//Gd27d8+2f/vtt7H11lvH66+/HldddVWtmcoRi57Vuc0228R1112XXbbRRhvF+uuvX+/zSxcsWBCDBg2K3//+93HKKadExKLPgzvuuCPOPPPMKCsri1/+8pfxpz/9qdbs0BNPPDHefPPNeOGFFyIi4uOPP87OoG2u/fffP954440oLS1t0fYAAJCr3N4TAADayAknnNBo+3nnnRfnnHNOzJkzJ7ss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OgwAAAAAAADQhBaHfrNmzYptttkmKioqYsGCBQ2ul8lkYtttt42//OUvLR0KAAAAAAAAaERhSzfs1KlTJEkSAwYMiPz8/Fh11VVj3XXXja233jp23nnn2GSTTeLbb7+NvffeO4qKimLkyJHLsm4AAAAAAADg/7Q49IuIyMvLi08//TQ+++yz+Pzzz6O0tDSee+65OO+882KdddaJTp06xccffxyPPvpo9OrVaxmVDAAAAAAAACyuWbf3/Pbbb2PChAmRyWSyy/r16xcbbbRR/PjHP44TTzwxJkyYEL/61a9i0qRJ8eKLL8Zpp50W66yzTosLvP7662PAgAHRpUuX2H777eODDz5ocV8AAAAAAADQETUr9Hvuuefi2GOPjX79+sW2224bERFPPfVU3HvvvXHmmWfG9ttvHwMHDowpU6bE/fffH/fee2+ccsop8cwzz7SouPfffz/OOeecuO++++Kdd96JoUOHxkEHHdSivgAAAAAAAKCjatbtPX/4wx/G7Nmz4/XXX4/HH388Hnroodhxxx0jImLllVeOs846K26//fbo379/dpvTTjstfvazn8Xbb78d3bp1a1Zxr732Wmy++eax0UYbRUTEL3/5y/jJT37SrD4AAAAAAACgo2v2M/2ef/752G677eKjjz6KrbbaKm677ba47rrrYsKECfHEE0/EqFGjsutWVFTENttsE3/729/i4osvjrPPPrtZY62zzjrxxBNPxOuvvx6DBw+Oa665Jnbeeed6162qqoqqqqrs61mzZjV31wAA6KDKy8tr3aJ+cRUVFcu5mmWrsX0rKSmJgQMHtsm2AAAAQG5pVuj37bffxkEHHRRdu3aN7bbbLioqKqJ79+7x6KOPxuWXXx5Dhw6NVVZZJbbbbrsYO3ZsPPzww/Hhhx/GFVdcEcOGDWt2ceuss07su+++seGGG0ZExODBg+Oll16qd90LLrig2aEiAAAdX3l5eQxbe1hUzq2st71zUeflXNGyU15eHsOHDYs5lfXvW5fi4igtK6s3vGvNtgAAAEDuaVbo17Vr1/jggw/izjvvjPfeey++/PLLOPnkk2OjjTaK0aNHx+effx6dOnWKbbbZJn7605/GjBkz4qGHHoof/OAHLSru5ZdfjgceeCBefPHFWHvtteOiiy6KH//4x/Hyyy9HXl5erXXHjh0bJ5xwQvb1rFmzYsCAAS0aFwCAjiOTySwK/EZFRMmSjRHVd1e3R1nLRCaTiTmVlXFrRAxfoq00IsZUVkYmk6k3uGvNtgAAAEDuaVbo98ADD8Rf//rX6Ny5c7z77rtRUVER3//+96OgoCBuvPHG2GqrraKwsDDOPPPM+MEPfhDbb799/P73v4+dd965Tki3NP7617/G/vvvH9///vcjIuK8886La6+9Nt54443YYIMNaq1bVFQURUVFzR4DAIDviJKI6N/kWqk0PCI2aodtAQAAgNyR35yVi4uLo1evXtGzZ8/o0qVLfPTRR/HWW2/FiiuuGKWlpbH11lvHggUL4quvvoo333wzDjrooKiqqorLL7+8RcUtXLgwvvzyy+zrb775JubMmRMLFixoUX8AAAAAAADQETVrpt/OO+8cW265ZVx22WWx1157xccffxyfffZZjBgxIvbaa6/o379/nHLKKTFkyJDo27dvXHLJJbHGGmvEjjvuGIcddlh069atWcVts802ceCBB8ZGG20UK6+8clx//fXRr1+/GDFiRLP6AQAAAAAAgI6sWTP9qqqqYtttt41nn302vv7661hzzTXjsccei+OPPz7++9//xqhRo2KFFVaIZ599NjbYYIPYcccdY8SIEfG9730vbr755mYXt88++8Spp54aV1xxRRx00EExY8aMuOeee6JTp07N7gsAAAAAAAA6qmaFfkVFRXHWWWfFww8/HP37948+ffrERhttFOeee25cddVVUVlZGZWVlbHeeuvF3XffHT179oyIiP322y/69u3b7OLy8vJi3LhxMXXq1Kiuro7JkyfHhhtu2Ox+AAAAAAAAoCNr1u09IyL22GOPiIj45S9/Gb/85S8jIuLXv/517L///lFSUhKzZs2qs82RRx7ZyjIBAAAAAACAhjRrpl9DCgoKYsUVV4y8vLzo2rVrnfbKysplMQwAAAAAAABQjxaHfl988cVSrTdlypTYZJNN4t13323pUAAAAAAAAEAjWhz6rbrqqrHlllvG+PHj46233mpwvRNOOCE+//zz6NGjR0uHAgAAAAAAABrR4tBv4cKFsdpqq8W1114bI0aMiGnTptVZ54ILLoh///vfMXHixFh55ZVbVSgAAAAAAABQv8LWbHzJJZfEwIED4/XXX48VV1yxVtu1114bZ5xxRlxwwQWx9957t6pIAAAAAAAAoGGtCv1qbLDBBtn/fvvtt+Pss8+Of/7zn3HttdfGYYcdtiyGAAAAAAAAABrQ4tt71njkkUdi6NChse2228bQoUNjvfXWi6Kionj77bcFfgAAAAAAALAcNCv0u/766+P222+PBQsWZJd17do1Ro4cGeuvv36ss8460bNnz3jsscfiH//4R631AAAAAAAAgLbRrNt7/vvf/4677rorxo4dG3l5eTFt2rTYZpttYptttsmus2DBgrjzzjvj5JNPjkceeSTuuuuu6NGjxzIvHAAAAAAAAFikWTP9/va3v8W0adPi1FNPjfXXXz+22mqr+PWvfx1fffVVdp2CgoL46U9/Gq+//npMnz49fvjDH0Z1dfUyLxwAAAAAAABYpNnP9OvVq1cceeSRMXny5Lj33nvjpZdeirXWWiu+/PLLWuv16dMnHnnkkfj444/j17/+9TIrGAAAAAAAAKit2aHf4jbYYIN46aWX4tprr42VVlopnnjiiaisrMy2r7jiinHNNdfEn//853jsscdaXSwAAAAAAABQV4tDv7///e8xfPjwmDBhQuy3335RUVERe+21VwwfPjzuvvvu7Hp77rln/OpXv4oRI0Ysk4IBAAAAAACA2pod+s2bNy9+/etfx+jRo2PUqFHx85//PCIiVllllSgrK4uRI0fGz3/+89hxxx3jzTffjIiICRMmRL9+/ZZt5QAAAAAAAEBEtCD0O+OMM+LWW2+Nv/3tb3HDDTdEz549s22rrLJKXHnllVFWVhZdunSJjTfeOH71q1/F9OnTl2nRAAAAAAAAwP/X7NBv3Lhx8fLLL8d+++3X4DqrrbZaPPDAA3HZZZfFlClTomvXrq0qEgAAAAAAAGhYs0O/bt26xdprr71U6x599NHx/PPPR1FRUbMLAwAAAAAAAJZOs0O/5nj22WfjD3/4Q3zzzTdtOQwAAAAAAAB8pxU2d4MLL7wwvv7663pn7y1YsCB69+4dJ510UkREPP3003HFFVfEfffdF48//njrqwUAAAAAAADqaHbod9ttt8Wqq64aK664Yr3t+fn/f/LgaaedFqecckpssskmLa8QAAAAAAAAaFSzQ7+IiN/97nex5ZZb1lm+cOHCePHFF2PSpEmRl5cXERFz5syJb7/9tnVVAgAAAAAAAA1qUegXEfHll1/GmWeeGWuvvXYMHjw41lxzzVhppZVi6623jry8vEiSJLvu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O821Nzb20vzOcP/997fLfufy+c7V85nLY7f2Wlua7ZdK0sFNnTo16dWrV4vXaWr71rS3Zd+5XFtbbtuWY7dn32muLVfrbm3fbd1/Rzyf7Tm285m+2pzPjlVbrta9ZNv999+frLzyyskaa6yR/OIXv0hOPPHE5De/+U2y2267JX379k1WXnnlpG/fvm3S3r1796SgoCAZOHBgvdsOHjw4+e9//9vgfv7hD39INt9882TatGnLvT0vLy9ZYYUVkldffbVO28SJE5OISAYMGJB88MEHy7w9Ly8vKSgoSP70pz/Vu2337t2TLl26JCeffHKd9ttvvz3p2bNni9tPO+20JC8vLxk5cmSL+u7Tp0+ywgorJGPGjEnWWmut5Iknnqi1ztSpU5Pu3bu3SXtjbaeddloyZMiQ5Pbbb88u23TTTZPu3bsnPXv2TFZdddWkR48eLWovKipKioqKkl122aVFfa+33npJUVFRsuWWWyY77rhj0rVr12TFFVdMrr766mThwoXJ888/n/Tq1atF7c8991yLt50zZ06dc7y4mTNnJk396v3FF18keXl59bbNnTs3mTlzZoPtjW173nnnJV27dk0iIjnppJOS1VZbLTniiCOSFVdcMfnpT3+a9OzZMykqKkp+8YtfLPP29dZbL8nLy0u22GKLOm177713MnDgwGTixIlJkiTJtttum2y//fbJJZdckhxzzDFJ9+7dkz/+8Y+19mXxdQ4//PCke/fuyY033ljv9t26dcu2taR98b6X1Jafp+35WZ7m2tty27Ycuz377qhjO5/pq60tz2dr+s/Pz0/69euXbLDBBnXa2/v7bVuOnebaGxu7qbr69OmT5OfnJ+uss85y3+9cPt+5ej5zeezWXmtLs/29995bp21JQr8m1snVP4CluTZ/uF/+7WkdO1frWh79d8Tz2Z5jO5/pq8357Fi15Wrdi7d98cUXSdeuXZObbrqpwXULCwuTwYMHL/P2mrF32GGHZNNNN63TPnfu3OTXv/51EhFJXl5evT/5+flJRDS4Tmvba9rqa69ZXlBQkDz++ON16s/Pz0+6d++erLzyysu8PT8/P9l5550bHHvAgAFJSUlJrWVvvPFG9r/XWGONZIUVVkhmzJjR7PZ11103Oeuss5JevXpl25vT97/+9a8kLy8vmTFjRvLwww8nq6++enLwwQcn06dPT5Kk9vW5rNsba+vVq1edY/nSSy8la6yxRvLtt98m3bp1qxNgLW17r169kgsvvLBWQNWcvocPH16rffr06cmIESOSbt26JZtvvnmy/vrr1/oFuTnt3bp1S8aNG9eibfPy8pKNN944GT9+fPLuu+8mS6oJ/bbddtsG1ykuLk4iot724uLiZKuttkry8vKave2gQYOSCy64IMnPz0+SJEleeeWVJC8vL3n99deTJEmS/v371/qMXJbtgwYNSk466aRkwIABddpKSkqSY489Nll11VWT999/P9lwww2ThQsXZvt5/PHHk4KCguTCCy9M5syZU2edkpKS5NBDD03WWWederfv2bNnsvLKK9e77dK013wmLu/P07b+LE9z7a0Zu6ltGzvfbb3faT2mzmfuHdNcrm1pvke29Hy21X4vvl2/fv3q/Nvbnt9v23LsNNfe2NhN1XXnnXcmEZEcfvjhy32/c/l85+r5zOWxW3utLc32Q4YMqbN8SYUBAADfcZMmTYoVVlghDjzwwHrb33rrrejRo0fMnDlzmbfXjH399dfHJptsUqe9uLg4TjrppLjtttvizTffbHAfPv3004iIWHXVVZd5e01bfe2DBw+Ot956Kx577LEYNWpUHHnkkXHOOedEp06dsuvMmTMnJkyY0Cbt1113XQwdOrTetpkzZ9a6BeNrr70WO++8c1RUVESnTp1i2rRpsfrqq0dZWVlsttlmzWr/5JNP4pBDDom77747ysrKolOnTs3qe6211or8/PwoKyuLXXfdNd5666045ZRTYp111olLLrkkttlmm2zdy7r91FNPbbBtwYIFMX/+/FrnuG/fvvHpp59Gly5doqioqM5tLZe2vWvXrjFs2LDIy8trUd/l5eW1tu3du3eMGjUqVl999Zg6dWqcddZZ8frrr7eo/bDDDovLL788qqqq4ve//32ztp00aVJcf/31UVVVFZdeemkMHTo0jjjiiDjggAOiqKgou83BBx8cTz31VGy++eZ11nnuuedi4403jrKysjrtb7zxRjz++OPx3HPPNXvbioqKWGmllSJJkoiI7PEfNGhQRER89dVX2bZl3V5RURGrr756fPXVV3XaHn300TjqqKPi008/jYsvvjiKi4trndu11lorunTpEg8//HBcdtllMWrUqFrr1GxfWlpa7/Z//etfY+TIkTFo0KA62y5N+/PPPx+7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",
      "text/plain": [
       "<Figure size 1800x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import akshare as ak\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.ticker import MultipleLocator, MaxNLocator\n",
    "import datetime\n",
    "\n",
    "# === 用户可配置参数 ===\n",
    "freq = 'w'  # 数据频率：'D' 每日, 'W' 每周, 'M' 每月, 'Q' 每季度\n",
    "bin_width = 0.2  # X轴的涨跌幅刻度单位（百分比）\n",
    "years = 8  # 回溯年数\n",
    "\n",
    "# === 日期处理 ===\n",
    "today = datetime.datetime.today()\n",
    "full_start_date = (today - pd.DateOffset(years=years)).strftime('%Y%m%d')\n",
    "end_date = today.strftime('%Y%m%d')\n",
    "start_date = pd.to_datetime(full_start_date)\n",
    "\n",
    "# === 获取数据，注意此处 df 的列名应为英文 ===\n",
    "# df = 你实际获取的 DataFrame，列名应该已经是英文：date, open, close 等\n",
    "\n",
    "df = ak.stock_zh_a_daily(symbol=\"sz002714\", start_date=full_start_date, end_date=end_date, adjust=\"qfq\")\n",
    "df['date'] = pd.to_datetime(df['date'])  # 用英文字段\n",
    "df = df[['date', 'open', 'close']]  # 保留必要字段\n",
    "\n",
    "# 筛选数据\n",
    "df = df[df['date'] >= start_date].copy()\n",
    "df.sort_values('date', inplace=True)\n",
    "df.set_index('date', inplace=True)\n",
    "\n",
    "# 重采样（按频率转换）\n",
    "if freq != 'D':\n",
    "    df = df.resample(freq).agg({'open': 'first', 'close': 'last'})\n",
    "    df.dropna(inplace=True)\n",
    "\n",
    "# 添加涨跌幅（百分比）\n",
    "df['涨跌幅'] = df['close'].pct_change() * 100\n",
    "df.dropna(subset=['涨跌幅'], inplace=True)\n",
    "\n",
    "# === 绘图 ===\n",
    "fig, ax = plt.subplots(figsize=(18, 6))\n",
    "\n",
    "# 自动计算直方图区间数\n",
    "min_change = df['涨跌幅'].min()\n",
    "max_change = df['涨跌幅'].max()\n",
    "bins = int((max_change - min_change) / bin_width)\n",
    "n, bins, patches = ax.hist(df['涨跌幅'], bins=bins, rwidth=0.9, edgecolor='black')\n",
    "\n",
    "\n",
    "upper_bound = 2\n",
    "\n",
    "# 筛选在区间内的数据\n",
    "within_range = df[(df['涨跌幅'] >= upper_bound)]\n",
    "\n",
    "# 计算次数和概率\n",
    "count_within_range = len(within_range)\n",
    "total_count = len(df)\n",
    "probability_within_range = count_within_range / total_count\n",
    "\n",
    "# 打印结果\n",
    "print(f\"涨跌幅大于 {upper_bound}% 概率：{probability_within_range:.4f}\")\n",
    "\n",
    "\n",
    "# 设置X轴刻度间距\n",
    "ax.xaxis.set_major_locator(MultipleLocator(bin_width))\n",
    "\n",
    "# 设置颜色：涨（红），跌（绿）\n",
    "for patch in patches:\n",
    "    if patch.get_x() + patch.get_width() / 2 >= 0:\n",
    "        patch.set_facecolor('red')\n",
    "    else:\n",
    "        patch.set_facecolor('green')\n",
    "\n",
    "# 设置标签和标题\n",
    "ax.set_xlabel(\"涨跌幅（%）\", fontsize=12)\n",
    "ax.set_ylabel(\"出现次数\", fontsize=12)\n",
    "ax.set_title(f\"比亚迪（002594）近{years}年 {freq} 级别涨跌幅分布\", fontsize=14)\n",
    "\n",
    "# 设置Y轴为整数\n",
    "ax.yaxis.set_major_locator(MaxNLocator(integer=True))\n",
    "\n",
    "# X轴标签旋转\n",
    "plt.xticks(rotation=-90)\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.show()\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
